list1=[1,2,3,4,5]
list1.append(6)
print(list1)
list1.remove(3)#list1.pop(2)
#修改元素值
list1[2]=8
print(list1)
index=list1.index(8)
print(index)
for element in list1:
 print(element)
new_element=[7,8,9]
for element in new_element:
    list1.append(element)
    print(list1)
list2=[10,11,12]
list1.extend(list2)
print(list1)
list3=list1[2:6]
print(list3)
list4=13,14
list1.insert(2,list4)
print(list1)
list1[2:3]=[13,14]
print(list1)
#进阶
my_list = [3, "apple", 9, "banana", 7, "cherry", 2, "date", 5, "elderberry"]
my_list.append('fig')
print(my_list)
my_list.remove("banana")
print(my_list)
my_list[3]="grape"
print(my_list)
print(my_list.index("cherry"))
for element in my_list:
    print(element)
my_list.insert(my_list.index("cherry")+1,"kiwi")
print(my_list)
three_list=my_list[2]
print(three_list)
print(my_list[-2])
print(my_list[2:8])
print(my_list[::-1])
# 分开数字和字符串列表
numbers = [x for x in my_list if isinstance(x, int)]
strings = [x for x in my_list if isinstance(x, str)]

# 对数字和字符串分别排序
numbers.sort()
strings.sort()

# 合并排序后的列表，这里我们选择数字在前，字符串在后
sorted_list = numbers + strings
print(sorted_list)

num_to_word = {
    1: "one", 2: "two", 3: "three", 4: "four", 5: "five",
    6: "six", 7: "seven", 8: "eight", 9: "nine"
}


# 遍历列表，将数字替换为对应的英文单词
for i in range(len(my_list)):
    if isinstance(my_list[i], int):
        my_list[i] = num_to_word.get(my_list[i], str(my_list[i]))

# 输出替换后的列表
print(my_list)
#复杂
even_numbers = list(range(2, 101, 2))
print(even_numbers)
import random

# 1. 创建一个列表包含从1到100的所有偶数
even_numbers = [i for i in range(2, 101, 2)]

# 2. 将上述列表中所有偶数替换为它们的平方
even_numbers = [i**2 for i in even_numbers]
print(even_numbers)
# 3. 从上述列表中删除所有大于1000的数字
even_numbers = [i for i in even_numbers if i <= 1000]

# 4. 将列表逆序
even_numbers.reverse()

# 5. 使用切片操作取出列表中的前10个元素
first_ten = even_numbers[:10]

# 6. 将一个新列表`[101, 102, 103]`加到现有列表的末尾
new_list = [101, 102, 103]
even_numbers.extend(new_list)

# 7. 计算列表中元素的平均值
average = sum(even_numbers) / len(even_numbers)

# 8. 找到列表中的最大值和最小值
max_num = max(even_numbers)
min_num = min(even_numbers)

# 9. 找出列表中第一次出现的11的索引位置
try:
    index_11 = even_numbers.index(11)
except ValueError:
    index_11 = -1

# 10. 用循环遍历列表，把每个数字替换为其对应的字符形式
# 使用 for 循环
for i in range(len(even_numbers)):
    even_numbers[i] = str(even_numbers[i])

# 11. 将列表中的所有元素转换成浮点数形式
even_numbers = [float(i) for i in even_numbers]

# 12. 找出列表中所有大于50的元素个数
count_gt_50 = len([i for i in even_numbers if i > 50])

# 13. 在列表的第3个位置插入数字99
even_numbers.insert(2, 99)

# 14. 删除列表中的最后一个元素
even_numbers.pop()

# 15. 使用列表推导式创建一个新列表，包含原列表中每个数字乘以2的结果
new_list_double = [i * 2 for i in even_numbers]

# 16. 将列表分成两部分，一部分是小于等于50的数，另一部分是大于50的数
less_than_50 = [i for i in even_numbers if i <= 50]
greater_than_50 = [i for i in even_numbers if i > 50]

# 17. 将列表转换为一个字典，其中列表元素作为键，其在列表中的索引作为值
num_dict = {value: index for index, value in enumerate(even_numbers)}

# 18. 使用`enumerate`函数遍历列表，并打印元素及其索引
for index, value in enumerate(even_numbers):
    print(f"Index: {index}, Value: {value}")

# 19. 从列表中随机取出一个元素
random_element = random.choice(even_numbers)

# 20. 将列表保存到一个txt文件里，每个元素占一行
with open('numbers.txt', 'w') as file:
    for num in even_numbers:
        file.write(str(num) + '\n')

# 打印部分结果
print("前10个元素:", first_ten)
print("平均值:", average)
print("最大值:", max_num)
print("最小值:", min_num)
print("11的索引位置:", index_11)
print("大于50的元素个数:", count_gt_50)
print("随机取出的元素:", random_element)